package offer

import (
	. "GoLeetcode/common"
)

/*
时间复杂度：O(N)
空间复杂度：O(1)

总共有三个状态(r, b, g)；分别表示将当前房子粉刷为r b g三种颜色的最小花费
*/
func minCost(costs [][]int) int {
	r, b, g := 0, 0, 0
	for _, costRaw := range costs {
		r, b, g = Min(b, g)+costRaw[0], Min(r, g)+costRaw[1], Min(r, b)+costRaw[2]
	}
	return Min(r, b, g)
}
